package estoquefacil

class Pedido {
	enum ESTADO {CRIADO, SOLICITADO, DESPACHADO, RECEBIDO}
	
	Funcionario funcionarioSolicitador
	Funcionario funcionarioDespachante
	Funcionario funcionarioReceptor
	Date dataDeSolicitacao
	Date dataDeDespacho
	Date dataDeRecebimento
	Estoque estoqueRemetente
	Estoque estoqueDestino
	ESTADO estado
	
	static hasMany = [itensDeVenda:ItemDeVenda]
	
	
	static constraints = {
		funcionarioSolicitador(blank:false)
		dataDeSolicitacao(nullable:true)
		funcionarioDespachante(nullable:true)
		dataDeDespacho(nullable:true, validator:{val, obj -> return val == null? true: val > obj?.dataDeSolicitacao})
		estoqueRemetente(blank:false, validator:{return it?.tipo == Estoque$Tipo.ARMAZEM})
		funcionarioReceptor(nullable:true)
		dataDeRecebimento(nullable:true, validator:{val, obj -> return val == null? true: val > obj?.dataDeDespacho})
		estoqueDestino(validator:{return it?.tipo == Estoque$Tipo.LOJA})
		itensDeVenda(nullable:true)
	
	}
}
